The ubiquity of the Internet enables new techniques adaptation to enable direct distribution of multimedia files and real-time media streaming to end-users in an electronic format. The advantages associated with electronic distribution allow media content providers to establish global distribution systems for digital content. Furthermore, new compression algorithms, designed specifically for multimedia data, dramatically reduce the bandwidth and storage space required for the electronic distribution of multimedia data. This, together with the availability of broadband communication, encourages content providers to adopt the Internet as an alternate distribution system complementing the conventional distribution systems (e.g., cable or satellite TV).
Peer-to-peer (P2P) or grid networks enable the distribution of media between users without using server centric solutions. As an example, P2P file sharing systems are well known in the industry and use a very efficient technology to deliver media. Examples for such P2P systems are BitTorrent® and Gnutella. However, these systems do not distribute the content in real-time. Rather, a user can download the content (files) and view it only when the download has completed, i.e., a user cannot view the file while downloading it.
Recently, new systems for real-time streaming over P2P networks have been developed. Examples for such systems may be found in “A Data Driver Overlay Network for Efficient Live Media Streaming” by Zhang, et al. and in “P2P Media Streaming”, by Hefeeda, et al., both of which are incorporated herein by reference merely for the useful understanding of the background of the invention. Real-time streaming systems fail to fully utilize the network's resources, as they do not consider the asymmetric nature of the nodes (peers) in a typical Internet protocol (IP) network. Generally, such systems consider the upload bandwidth of nodes as equal to the download bandwidth. This is rarely the case in IP networks, such as asymmetric digital subscriber line (ADSL) and cable based networks, as in most cases a node's upload bandwidth is half or less of the download bandwidth. Another type of real-time P2P network for distributing media can be found in PCT application number PCT/IL2007/000392 entitled “Realtime Media Distribution in a P2P Network”, by Omer Luzzatti, et al. (hereinafter “Luzzatti”) which is assigned to common assignee and incorporated herein by reference merely for the useful understanding of the background of the invention. Luzzatti discloses a real-time P2P network where nodes in the network can act in the role of ‘amplifiers’ to increase the total available bandwidth made available in the network and thus to improve the quality of the media consumed by the viewers.
When one peer in the peer-to-peer network is designated to provide content to a plurality of other peers that are connected to the delivering peer node, there may be differences in bandwidth requirement for each of the receiving peers due to many reasons. These include bandwidth limitations resulting from the output bandwidth of the delivering node, the bandwidth limitations of each receiving node, as well as limitation of various units that are placed in between the delivering node in the peer-to-peer network and the receiving nodes of the peer-to-peer network.
Techniques for allocating resources in a real-time peer-to-peer network are discussed in a co-pending U.S. patent application Ser. No. 12/120,652, filed on May 15, 2008, entitled “A Method for Managing the Allocation of Resources to Channel Swarms in a Peer-to-Peer network” and in a PCT application PCT/IL2007/001187 entitled “System and Methods for Peer-To-Peer Media Streaming”, filed on Sep. 25, 2007, each of which is assigned to common assignee and incorporated herein by reference merely for the useful understanding of the background of the invention.
Prior art solutions typically either arbitrarily allocate a quota for delivery to each of the receiving nodes or divide the available bandwidth between the receiving nodes of the peer-to-peer network. However, this does not necessarily provide a good solution for systems where a receiving node may be joining or disconnecting from the system. It would further be problematic for networks where network conditions change, which is a typical occurrence in today's complex and heavily loaded networks.